home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgramD2.iso / Borland / Borland C++ V5.02 / DOC.PAK / OLE_ERRS.TXT < prev    next >
Text File  |  1997-05-06  |  23KB  |  289 lines

  1. // These error codes have been taken from the OLE header files and sorted
  2. // into numerical order.  The comments too come from the OLE header files.
  3. //
  4. // This list is provided as a convenience for interpreting OLE error
  5. // codes when functions fail.
  6.  
  7. #define S_OK                                   0x00000000
  8. #define S_FALSE                                0x00000001
  9. #define STG_S_CONVERTED                        0x00030200
  10. #define OLE_S_FIRST                            0x00040000 // all interfaces
  11. #define OLE_S_USEREG                           0x00040000 // use the reg database to provide the requested info
  12. #define OLE_S_STATIC                           0x00040001 // success, but static 
  13. #define OLE_S_MAC_CLIPFORMAT                   0x00040002 // macintosh clipboard format
  14. #define OLE_S_LAST                             0x000400FF
  15. #define DRAGDROP_S_DROP                        0x00040100
  16. #define DRAGDROP_S_CANCEL                      0x00040101
  17. #define DRAGDROP_S_USEDEFAULTCURSORS           0x00040102
  18. #define CLASSFACTORY_S_FIRST                   0x00040110 // IClassFactory
  19. #define CLASSFACTORY_S_LAST                    0x0004011F
  20. #define MARSHAL_S_FIRST                        0x00040120 // IMarshal, IStdMarshalInfo, marshal APIs
  21. #define MARSHAL_S_LAST                         0x0004012F
  22. #define DATA_S_SAMEFORMATETC                   0x00040130
  23. #define DATA_S_FIRST                           0x00040130 // IDataObject
  24. #define DATA_S_LAST                            0x0004013F
  25. #define VIEW_S_FIRST                           0x00040140 // IViewObject
  26. #define VIEW_S_LAST                            0x0004014F
  27. #define REGDB_S_FIRST                          0x00040150 // reg.dat manipulation API
  28. #define REGDB_S_LAST                           0x0004015F
  29. #define CACHE_S_FORMATETC_NOTSUPPORTED         0x00040170
  30. #define CACHE_S_FIRST                          0x00040170 // IOleCache
  31. #define CACHE_S_SAMECACHE                      0x00040171
  32. #define CACHE_S_SOMECACHES_NOTUPDATED          0x00040172
  33. #define CACHE_S_LAST                           0x0004017F
  34. #define OLEOBJ_S_FIRST                         0x00040180 // IOleObject
  35. #define OLEOBJ_S_CANNOT_DOVERB_NOW             0x00040181
  36. #define OLEOBJ_S_INVALIDHWND                   0x00040182
  37. #define OLEOBJ_S_LAST                          0x0004018F
  38. #define CLIENTSITE_S_FIRST                     0x00040190 // IOleClientSite
  39. #define CLIENTSITE_S_LAST                      0x0004019F
  40. #define INPLACE_S_FIRST                        0x000401A0 // IOleWindow,IOleInPlaceObject,IOleInPlaceActiveObject
  41. #define INPLACE_S_TRUNCATED                    0x000401A0 // Message is too long, some of it had to be truncated before displaying
  42. #define INPLACE_S_LAST                         0x000401AF // IOleInPlaceUIWindow,IOleInPlaceFrame,IOleInPlaceSite
  43. #define ENUM_S_FIRST                           0x000401B0 // IEnum*
  44. #define ENUM_S_LAST                            0x000401BF
  45. #define CONVERT10_S_FIRST                      0x000401C0 // OleConvertOLESTREAMToIStorage, OleConvertIStorageToOLESTREAM
  46. #define CONVERT10_S_NO_PRESENTATION            0x000401C0 // Returned by either API,  the original object had no presentation
  47. #define CONVERT10_S_LAST                       0x000401CF
  48. #define CLIPBRD_S_FIRST                        0x000401D0 // OleSetClipboard, OleGetClipboard, OleFlushClipboard
  49. #define CLIPBRD_S_LAST                         0x000401DF
  50. #define MK_S_FIRST                             0x000401E0 // IMoniker, IBindCtx, IRunningObjectTable, IParseDisplayName
  51. #define MK_S_REDUCED_TO_SELF                   0x000401E2
  52. #define MK_S_ME                                0x000401E4
  53. #define MK_S_HIM                               0x000401E5
  54. #define MK_S_US                                0x000401E6
  55. #define MK_S_MONIKERALREADYREGISTERED          0x000401E7
  56. #define MK_S_LAST                              0x000401EF // IOleContainer, IOleItemContainer, IOleLink
  57. #define CO_S_FIRST                             0x000401F0 // all Co* API
  58. #define CO_S_LAST                              0x000401FF
  59. #define E_NOTIMPL                              0x80000001 // not implemented
  60. #define E_OUTOFMEMORY                          0x80000002 // ran out of memory
  61. #define E_INVALIDARG                           0x80000003 // one or more arguments are invalid
  62. #define E_NOINTERFACE                          0x80000004 // no such interface supported
  63. #define E_POINTER                              0x80000005 // invalid pointer
  64. #define E_HANDLE                               0x80000006 // invalid handle
  65. #define E_ABORT                                0x80000007 // operation aborted
  66. #define E_FAIL                                 0x80000008 // unspecified error
  67. #define E_ACCESSDENIED                         0x80000009 // general access denied error
  68. #define E_UNEXPECTED                           0x8000FFFF // relatively catastrophic failure
  69. #define RPC_E_CALL_REJECTED                    0x80010001 // call was rejected by callee
  70. #define RPC_E_CALL_CANCELED                    0x80010002 // call was canceld by call - returned by MessagePending
  71. #define RPC_E_CANTPOST_INSENDCALL              0x80010003 // the caller is dispatching an intertask SendMessage call and can NOT call out via PostMessage
  72. #define RPC_E_CANTCALLOUT_INASYNCCALL          0x80010004 // the caller is dispatching an asynchronus call can NOT make an outgoing call on behalf of this call
  73. #define RPC_E_CANTCALLOUT_INEXTERNALCALL       0x80010005 // the caller is not in a state where an outgoing call can be made
  74. #define RPC_E_CONNECTION_TERMINATED            0x80010006 // the connection terminated or is in a bogus state
  75. #define RPC_E_SERVER_DIED                      0x80010007 // the callee (server [not server application]) is not available 
  76. #define RPC_E_CLIENT_DIED                      0x80010008 // the caller (client) disappeared while the callee (server) was processing a call 
  77. #define RPC_E_INVALID_DATAPACKET               0x80010009 // the date paket with the marshalled parameter data is incorrect
  78. #define RPC_E_CANTTRANSMIT_CALL                0x8001000A // the call was not transmitted properly; the message queue was full and was not emptied after yielding
  79. #define RPC_E_CLIENT_CANTMARSHAL_DATA          0x8001000B // the client (caller) can not marshall the parameter data
  80. #define RPC_E_CLIENT_CANTUNMARSHAL_DATA        0x8001000C // the client (caller) can not unmarshall the return data
  81. #define RPC_E_SERVER_CANTMARSHAL_DATA          0x8001000D // the server (caller) can not unmarshall the parameter data
  82. #define RPC_E_SERVER_CANTUNMARSHAL_DATA        0x8001000E // the server (caller) can not marshall the return data - low memory
  83. #define RPC_E_INVALID_DATA                     0x8001000F // received data are invalid; can be server or client data
  84. #define RPC_E_INVALID_PARAMETER                0x80010010 // a particular parameter is invalid and can not be un/marshalled
  85. #define RPC_E_CANTCALLOUT_AGAIN                0x80010011 // DDE conversation - no second outgoing call on same channel
  86. #define RPC_E_UNEXPECTED                       0x8001FFFF // a internal error occured 
  87. #define DISP_E_UNKNOWNINTERFACE                0x80020001
  88. #define DISP_E_MEMBERNOTFOUND                  0x80020003
  89. #define DISP_E_PARAMNOTFOUND                   0x80020004
  90. #define DISP_E_TYPEMISMATCH                    0x80020005
  91. #define DISP_E_UNKNOWNNAME                     0x80020006
  92. #define DISP_E_NONAMEDARGS                     0x80020007
  93. #define DISP_E_BADVARTYPE                      0x80020008
  94. #define DISP_E_EXCEPTION                       0x80020009
  95. #define DISP_E_OVERFLOW                        0x8002000A
  96. #define DISP_E_BADINDEX                        0x8002000B
  97. #define DISP_E_UNKNOWNLCID                     0x8002000C
  98. #define DISP_E_ARRAYISLOCKED                   0x8002000D
  99. #define DISP_E_BADPARAMCOUNT                   0x8002000E
  100. #define DISP_E_PARAMNOTOPTIONAL                0x8002000F
  101. #define DISP_E_BADCALLEE                       0x80020010
  102. #define DISP_E_NOTACOLLECTION                  0x80020011
  103. #define TYPE_E_BUFFERTOOSMALL                  0x80028016
  104. #define TYPE_E_INVDATAREAD                     0x80028018
  105. #define TYPE_E_UNSUPFORMAT                     0x80028019
  106. #define TYPE_E_REGISTRYACCESS                  0x8002801C
  107. #define TYPE_E_LIBNOTREGISTERED                0x8002801D
  108. #define TYPE_E_UNDEFINEDTYPE                   0x80028027
  109. #define TYPE_E_QUALIFIEDNAMEDISALLOWED         0x80028028
  110. #define TYPE_E_INVALIDSTATE                    0x80028029
  111. #define TYPE_E_WRONGTYPEKIND                   0x8002802A
  112. #define TYPE_E_ELEMENTNOTFOUND                 0x8002802B
  113. #define TYPE_E_AMBIGUOUSNAME                   0x8002802C
  114. #define TYPE_E_NAMECONFLICT                    0x8002802D
  115. #define TYPE_E_UNKNOWNLCID                     0x8002802E
  116. #define TYPE_E_DLLFUNCTIONNOTFOUND             0x8002802F
  117. #define TYPE_E_BADMODULEKIND                   0x800288BD
  118. #define TYPE_E_SIZETOOBIG                      0x800288C5
  119. #define TYPE_E_DUPLICATEID                     0x800288C6
  120. #define TYPE_E_TYPEMISMATCH                    0x80028CA0
  121. #define TYPE_E_OUTOFBOUNDS                     0x80028CA1
  122. #define TYPE_E_IOERROR                         0x80028CA2
  123. #define TYPE_E_CANTCREATETMPFILE               0x80028CA3
  124. #define TYPE_E_CANTLOADLIBRARY                 0x80029C4A
  125. #define TYPE_E_INCONSISTENTPROPFUNCS           0x80029C83
  126. #define TYPE_E_CIRCULARTYPE                    0x80029C84
  127. #define STG_E_INVALIDFUNCTION                  0x80030001
  128. #define STG_E_FILENOTFOUND                     0x80030002
  129. #define STG_E_PATHNOTFOUND                     0x80030003
  130. #define STG_E_TOOMANYOPENFILES                 0x80030004
  131. #define STG_E_ACCESSDENIED                     0x80030005
  132. #define STG_E_INVALIDHANDLE                    0x80030006
  133. #define STG_E_INSUFFICIENTMEMORY               0x80030008
  134. #define STG_E_INVALIDPOINTER                   0x80030009
  135. #define STG_E_NOMOREFILES                      0x80030012
  136. #define STG_E_DISKISWRITEPROTECTED             0x80030013
  137. #define STG_E_SEEKERROR                        0x80030019
  138. #define STG_E_WRITEFAULT                       0x8003001D
  139. #define STG_E_READFAULT                        0x8003001E
  140. #define STG_E_SHAREVIOLATION                   0x80030020
  141. #define STG_E_LOCKVIOLATION                    0x80030021
  142. #define STG_E_FILEALREADYEXISTS                0x80030050
  143. #define STG_E_INVALIDPARAMETER                 0x80030057
  144. #define STG_E_MEDIUMFULL                       0x80030070
  145. #define STG_E_ABNORMALAPIEXIT                  0x800300FA
  146. #define STG_E_INVALIDHEADER                    0x800300FB
  147. #define STG_E_INVALIDNAME                      0x800300FC
  148. #define STG_E_UNKNOWN                          0x800300FD
  149. #define STG_E_UNIMPLEMENTEDFUNCTION            0x800300FE
  150. #define STG_E_INVALIDFLAG                      0x800300FF
  151. #define STG_E_INUSE                            0x80030100
  152. #define STG_E_NOTCURRENT                       0x80030101
  153. #define STG_E_REVERTED                         0x80030102
  154. #define STG_E_CANTSAVE                         0x80030103
  155. #define STG_E_OLDFORMAT                        0x80030104
  156. #define STG_E_OLDDLL                           0x80030105
  157. #define STG_E_SHAREREQUIRED                    0x80030106
  158. #define STG_E_NOTFILEBASEDSTORAGE              0x80030107
  159. #define STG_E_EXTANTMARSHALLINGS               0x80030108
  160. #define OLE_E_FIRST                            0x80040000 // all interfaces
  161. #define OLE_E_OLEVERB                          0x80040000 // invalid OLEVERB structure  
  162. #define OLE_E_ADVF                             0x80040001 // invalid advise flags
  163. #define OLE_E_ENUM_NOMORE                      0x80040002 // you can't enuemrate any more, because the associated data is missing
  164. #define OLE_E_ADVISENOTSUPPORTED               0x80040003 // this implementation doesn't take advises
  165. #define OLE_E_NOCONNECTION                     0x80040004 // there is no connection for this connection id
  166. #define OLE_E_NOTRUNNING                       0x80040005 // need run the object to perform this operation
  167. #define OLE_E_NOCACHE                          0x80040006 // there is no cache to operate on
  168. #define OLE_E_BLANK                            0x80040007 // Uninitialized object
  169. #define OLE_E_CLASSDIFF                        0x80040008 // linked object's source class has changed 
  170. #define OLE_E_CANT_GETMONIKER                  0x80040009 // not able to get the moniker of the object
  171. #define OLE_E_CANT_BINDTOSOURCE                0x8004000A // not able to bind to the source
  172. #define OLE_E_STATIC                           0x8004000B // object is static, operation not allowed
  173. #define OLE_E_PROMPTSAVECANCELLED              0x8004000C // user cancelled out of save dialog
  174. #define OLE_E_INVALIDRECT                      0x8004000D // invalid rectangle 
  175. #define OLE_E_WRONGCOMPOBJ                     0x8004000E // compobj.dll is too old for the ole2.dll initialized
  176. #define OLE_E_INVALIDHWND                      0x8004000F // invalid window handle
  177. #define OLE_E_NOT_INPLACEACTIVE                0x80040010 // object is not in any of the inplace active states  
  178. #define OLE_E_CANTCONVERT                      0x80040011 // not able to convert the object 
  179. #define OLE_E_NOSTORAGE                        0x80040012 // not able to perform the operation because object is not given storage yet.
  180. #define DVGEN_E_FIRST                          0x80040064 // (OLE_E_FIRST+100) Might move to FACILITY_NULL
  181. #define DV_E_FORMATETC                         0x80040064 // invalid FORMATETC structure
  182. #define DV_E_DVTARGETDEVICE                    0x80040065 // invalid DVTARGETDEVICE structure
  183. #define DV_E_STGMEDIUM                         0x80040066 // invalid STDGMEDIUM structure
  184. #define DV_E_STATDATA                          0x80040067 // invalid STATDATA structure
  185. #define DV_E_LINDEX                            0x80040068 // invalid lindex
  186. #define DV_E_TYMED                             0x80040069 // invalid tymed
  187. #define DV_E_CLIPFORMAT                        0x8004006A // invalid clipboard format
  188. #define DV_E_DVASPECT                          0x8004006B // invalid aspect(s) 
  189. #define DV_E_DVTARGETDEVICE_SIZE               0x8004006C // tdSize paramter of the DVTARGETDEVICE structure is invalid
  190. #define DV_E_NOIVIEWOBJECT                     0x8004006D // object doesn't support IViewObject interface
  191. #define OLE_E_LAST                             0x800400FF  
  192. #define DRAGDROP_E_FIRST                       0x80040100 // IDropSource, IDropTarget
  193. #define DRAGDROP_S_FIRST                       0x80040100 // IDropSource, IDropTarget
  194. #define DRAGDROP_E_INVALIDHWND                 0x80040100 // invalid HWND
  195. #define DRAGDROP_E_ALREADYREGISTERED           0x80040100 // this window has already been registered as a drop target
  196. #define DRAGDROP_E_NOTREGISTERED               0x80040100 // trying to revoke a drop target that has not been registered 
  197. #define DRAGDROP_E_LAST                        0x8004010F
  198. #define DRAGDROP_S_LAST                        0x8004010F
  199. #define CLASS_E_NOAGGREGATION                  0x80040110 // class does not support aggregation (or class object is remote)
  200. #define CLASSFACTORY_E_FIRST                   0x80040110 // IClassFactory
  201. #define CLASS_E_CLASSNOTAVAILABLE              0x80040111 // dll doesn't support that class (returned from DllGetClassObject)
  202. #define CLASSFACTORY_E_LAST                    0x8004011F
  203. #define MARSHAL_E_FIRST                        0x80040120 // IMarshal, IStdMarshalInfo, marshal APIs
  204. #define MARSHAL_E_LAST                         0x8004012F 
  205. #define DATA_E_FIRST                           0x80040130 // IDataObject
  206. #define DATA_E_LAST                            0x8004013F
  207. #define VIEW_E_DRAW                            0x80040140
  208. #define VIEW_E_FIRST                           0x80040140 // IViewObject
  209. #define VIEW_E_LAST                            0x8004014F
  210. #define REGDB_E_FIRST                          0x80040150 // reg.dat manipulation API
  211. #define REGDB_E_READREGDB                      0x80040150 // some error reading the registration database
  212. #define REGDB_E_WRITEREGDB                     0x80040151 // some error reading the registration database
  213. #define REGDB_E_KEYMISSING                     0x80040152 // some error reading the registration database
  214. #define REGDB_E_INVALIDVALUE                   0x80040153 // some error reading the registration database
  215. #define REGDB_E_CLASSNOTREG                    0x80040154 // some error reading the registration database
  216. #define REGDB_E_IIDNOTREG                      0x80040155 // some error reading the registration database
  217. #define REGDB_E_LAST                           0x8004015F
  218. #define CACHE_E_NOCACHE_UPDATED                0x80040170
  219. #define CACHE_E_FIRST                          0x80040170 // IOleCache
  220. #define CACHE_E_LAST                           0x8004017F
  221. #define OLEOBJ_E_NOVERBS                       0x80040180
  222. #define OLEOBJ_S_INVALIDVERB                   0x80040180
  223. #define OLEOBJ_E_FIRST                         0x80040180 // IOleObject
  224. #define OLEOBJ_E_INVALIDVERB                   0x80040181
  225. #define OLEOBJ_E_LAST                          0x8004018F
  226. #define CLIENTSITE_E_FIRST                     0x80040190 // IOleClientSite
  227. #define CLIENTSITE_E_LAST                      0x8004019F
  228. #define INPLACE_E_FIRST                        0x800401A0 // IOleWindow,IOleInPlaceObject,IOleInPlaceActiveObject
  229. #define INPLACE_E_NOTUNDOABLE                  0x800401A0 // undo is not avaiable
  230. #define INPLACE_E_NOTOOLSPACE                  0x800401A1 // Space for tools is not available
  231. #define INPLACE_E_LAST                         0x800401AF // IOleInPlaceUIWindow,IOleInPlaceFrame,IOleInPlaceSite
  232. #define ENUM_E_FIRST                           0x800401B0 // IEnum*
  233. #define ENUM_E_LAST                            0x800401BF
  234. #define CONVERT10_E_FIRST                      0x800401C0 // OleConvertOLESTREAMToIStorage, OleConvertIStorageToOLESTREAM
  235. #define CONVERT10_E_OLESTREAM_GET              0x800401C0 // OLESTREAM Get method failed
  236. #define CONVERT10_E_OLESTREAM_PUT              0x800401C1 // OLESTREAM Put method failed
  237. #define CONVERT10_E_OLESTREAM_FMT              0x800401C2 // Contents of the OLESTREAM not in correct format
  238. #define CONVERT10_E_OLESTREAM_BITMAP_TO_DIB    0x800401C3 // There was in an error in a Windows GDI call while converting the bitmap to a DIB
  239. #define CONVERT10_E_STG_FMT                    0x800401C4 // Contents of the IStorage not in correct format
  240. #define CONVERT10_E_STG_NO_STD_STREAM          0x800401C5 // Contents of IStorage is missing one of the standard streams ("\1CompObj", "\1Ole", "\2OlePres000")
  241. #define CONVERT10_E_STG_DIB_TO_BITMAP          0x800401C6 // There was in an error in a Windows GDI call while converting the DIB to a bitmap
  242. #define CONVERT10_E_LAST                       0x800401CF
  243. #define CLIPBRD_E_FIRST                        0x800401D0 // OleSetClipboard, OleGetClipboard, OleFlushClipboard
  244. #define CLIPBRD_E_CANT_OPEN                    0x800401D0 // OpenClipboard Failed
  245. #define CLIPBRD_E_CANT_EMPTY                   0x800401D1 // EmptyClipboard Failed
  246. #define CLIPBRD_E_CANT_SET                     0x800401D2 // SetClipboard Failed
  247. #define CLIPBRD_E_BAD_DATA                     0x800401D3 // Data on clipboard is invalid
  248. #define CLIPBRD_E_CANT_CLOSE                   0x800401D4 // OpenClipboard Failed
  249. #define CLIPBRD_E_LAST                         0x800401DF
  250. #define MK_E_CONNECTMANUALLY                   0x800401E0
  251. #define MK_E_FIRST                             0x800401E0 // IMoniker, IBindCtx, IRunningObjectTable, IParseDisplayName
  252. #define MK_E_EXCEEDEDDEADLINE                  0x800401E1
  253. #define MK_E_NEEDGENERIC                       0x800401E2
  254. #define MK_E_UNAVAILABLE                       0x800401E3
  255. #define MK_E_SYNTAX                            0x800401E4
  256. #define MK_E_NOOBJECT                          0x800401E5
  257. #define MK_E_INVALIDEXTENSION                  0x800401E6
  258. #define MK_E_INTERMEDIATEINTERFACENOTSUPPORTED 0x800401E7
  259. #define MK_E_NOTBINDABLE                       0x800401E8
  260. #define MK_E_NOTBOUND                          0x800401E9 // called IBindCtx->RevokeObjectBound for an object which was not bound
  261. #define MK_E_CANTOPENFILE                      0x800401EA
  262. #define MK_E_MUSTBOTHERUSER                    0x800401EB
  263. #define MK_E_NOINVERSE                         0x800401EC
  264. #define MK_E_NOSTORAGE                         0x800401ED
  265. #define MK_E_NOPREFIX                          0x800401EE
  266. #define MK_E_LAST                              0x800401EF // IOleContainer, IOleItemContainer, IOleLink
  267. #define CO_E_FIRST                             0x800401F0 // all Co* API
  268. #define CO_E_NOTINITIALIZED                    0x800401F0 // CoInitialize has not been called and must be
  269. #define CO_E_ALREADYINITIALIZED                0x800401F1 // CoInitialize has already been called and cannot be called again (temporary)
  270. #define CO_E_CANTDETERMINECLASS                0x800401F2 // can't determine clsid (e.g., extension not in reg.dat)
  271. #define CO_E_CLASSSTRING                       0x800401F3 // the string form of the clsid is invalid (including ole1 classes)
  272. #define CO_E_IIDSTRING                         0x800401F4 // the string form of the iid is invalid
  273. #define CO_E_APPNOTFOUND                       0x800401F5 // application not found
  274. #define CO_E_APPSINGLEUSE                      0x800401F6 // application cannot be run more than once
  275. #define CO_E_ERRORINAPP                        0x800401F7 // some error in the app program file
  276. #define CO_E_DLLNOTFOUND                       0x800401F8 // dll not found
  277. #define CO_E_ERRORINDLL                        0x800401F9 // some error in the dll file
  278. #define CO_E_WRONGOSFORAPP                     0x800401FA // app written for other version of OS or other OS altogether
  279. #define CO_E_OBJNOTREG                         0x800401FB // object is not registered
  280. #define CO_E_OBJISREG                          0x800401FC // object is already registered
  281. #define CO_E_OBJNOTCONNECTED                   0x800401FD // handler is not connected to server
  282. #define CO_E_APPDIDNTREG                       0x800401FE // app was launched, but didn't registered a class factory
  283. #define CO_E_LAST                              0x800401FF
  284. #define FACILITY_NULL                         0  // generally useful errors ([SE]_*)
  285. #define FACILITY_RPC                          1  // remote procedure call errors (RPC_E_*)
  286. #define FACILITY_DISPATCH                     2  // late binding dispatch errors
  287. #define FACILITY_STORAGE                      3  // storage errors (STG_E_*)
  288. #define FACILITY_ITF                          4  // interface-specific errors
  289.